﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FrameworkManapro.BusinessModel;

namespace GMAC.ReportingSystem.Business.Entities
{
    /// <summary>
    /// Clase usada para reprsentar los registros de la tabla [TemporaryLaoSalvageAccounts]
    /// que es usada para la carga masiva de datos de las cuentas en estatus PÉRDIDA de LAO SALVAGE
    /// </summary>
    //[DbProcedures(Insert = "", Update = "", Delete = "")]
    public class StringLaoSalvageAccount : BusinessEntity
    {
        //[EntityPrimaryKey]
        //[DbParameter(0, 1, 1)]
        /// <summary>
        /// Clave PK de la tabla
        /// </summary>
        public string ID { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Fecha en la que se realizo la carga
        /// </summary>
        public DateTime LoadDate { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Número de cuenta
        /// </summary>
        public string AccountNumber { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Código del Estatus
        /// </summary>
        public string AccountStatusCode { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Fecha que pasó a ese estatus
        /// </summary>
        public string AccountStatusDate { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Nombre del Dealer
        /// </summary>
        public string DealerName { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Código del Dealer
        /// </summary>
        public string DealerNumber { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Nombre del Field Rep o Representante Legal
        /// </summary>
        public string ThirdPartyName { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Código que indica que tipo de Field Rep es.
        /// </summary>
        public string ThirdPartyTypeCode { get; set; }

        //[DbParameter(1, 2, 0)]
        //[TableColumn]
        /// <summary>
        /// Monto
        /// </summary>
        public string CurrentTotalAmount { get; set; }

        /// <summary>
        /// Descripcion de las razon de rechazo del registro
        /// </summary>
        public string RejectionReason { get; set; }

        /// <summary>
        /// Descripcion de las razon de rechazo del registro
        /// </summary>
        public String RejectionReason_Small
        {
            get
            {
                return (RejectionReason.Length > 50) ? RejectionReason.Substring(0, 50) : RejectionReason;
            }
        } // RejectionReason_Small

    } // class

    /// <summary>
    /// Colecion de LaoSalvageAccount
    /// </summary>
    public class StringLaoSalvageAccountCollection : List<StringLaoSalvageAccount>
    { }

} // namespace
